package com.zy.stack;


import java.util.Stack;

/**
 * Created by zhaoyi on 2019/7/18
 * 有效的括号 '('，')'，'{'，'}'，'['，']
 */
public class StackIsVaild {


    //我这个有点low了完全可以直接根据下标来获取Chars数组的
    //jdk9 以前就是char数组
    public boolean isValid(String s) {
        if (s == null || s.length() == 0) {
            return true;
        }
        String[] split = s.split("");

        if (split.length % 2 != 0) {
            return false;
        }
        Stack<String> stack = new Stack();
        for (String json : split) {
            if (json.equals("(") || json.equals("[") || json.equals("{")) {
                stack.push(json);
            } else {
                if(stack.empty()){
                    return false;
                }
                String pop = stack.pop();
                if (json.equals(")") && !pop.equals("(")){
                    return false;
                }else if(json.equals("]") && !pop.equals("[")){
                    return false;
                }else if(json.equals("}") && !pop.equals("{")){
                    return false;
                }
            }
        }

        return stack.empty();
    }


}
